Загрузим данные из кода в Jupyter Notebook.

players_df <- as.data.frame(read.csv('top_players.csv'))

Анализ посчитаных расстояний будем выполнять с помощью построения зависимости между points и average. Как видно из графика мы снова получаем самые важные кластеры 2, 6, 7. На этом графике благодаря прозрачности точек можно увидеть, что плотность точек внизу выше. Следовательно более короткое расстояние позволяет защищать и блокировать лучше.

pl_df <- na.omit(players_df)
        
p <- ggplot(pl_df, aes(average, points)) +
  geom_point(mapping=aes(colour=as.factor(points_cnt)), alpha=0.2) +
  geom_smooth(method = "lm",  se=FALSE) +
  ggtitle("Dependence of points by player") +
  xlab("Distance") +
  ylab("Points") +
  labs(colour="Cluster")

ggplotly(p)

Точки, скопившиеся в районе average=0, это значения, для которых еще не были подсчитаны средние расстояния. Однако, для них мы имеем значения points и можем их учитывать. Добавление этим строкам значений average только усилит зависимость points и average.

Построим функцию плотности для average

d1 <- density(pl_df$average)
plot(d1, main="Density for average distance", xlab="Value", ylab="Density")

Мы получаем что пик среднего расстояния приходится на 5 ярдов. Другой пик означает незаполненые значения.

d2 <- density(pl_df$minDist)
plot(d2, main="Density for minimum distance", xlab="Value", ylab="Density")

А для минимальных расстояний мы получаем, что график имеет два максимума - это значения, где защитник повалил соперника и расстояние около 1 ярда и где он его прикрывает ~ 3 ярда.

Таким образом на основе графиков плотности мы видим, что наибольшая эффективность защиты достигается при тактике короткой дистанции.

Следующая страница

Предыдущая страница